package com.ruoyi.system.service.impl.wechat;

import com.ruoyi.common.constant.wechat.WechatConstants;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.system.mapper.wechat.WechatUserPostMapper;
import com.ruoyi.system.service.wechat.IWechatPostService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 微信小程序用户岗位
 *
 * @author jiexiang.sun/Jason
 * @version 1.0.0
 * @create 2022-03-04 0:07
 **/
@Service
@Slf4j
public class WechatPostServiceImpl implements IWechatPostService {

    @Autowired
    private RedisCache redisCache;

    @Autowired
    private WechatUserPostMapper wechatUserPostMapper;

//    /**
//     * 缓存岗位相关信息
//     */
//    @Override
//    public List<WechatPost> loadWechatPostCache() {
//        //清空岗位缓存
//        cleanPostCache();
//        //初始化岗位信息到缓存
//        return loadingPostCache();
//    }
//
//    /**
//     * 获取全部岗位信息
//     *
//     * @return
//     */
//    @Override
//    public List<WechatPost> getAll() {
//        List<WechatPost> cacheList = getCachePosts();
//        if (CollectionUtil.isEmpty(cacheList)) {
//            cacheList = loadWechatPostCache();
//        }
//
//        if (CollectionUtil.isEmpty(cacheList)) {
//            log.warn("系统初始加载微信小程序岗位信息失败，原因：系统中没有微信小程序岗位数据，请先添加岗位");
//        }
//
//        return cacheList;
//    }
//
//    /**
//     * 获取用户岗位信息
//     *
//     * @param userId
//     * @return
//     */
//    @Override
//    public List<WechatPost> getByUserId(Long userId) {
//        LambdaQueryWrapper<WechatUserPost> wechatUserPostWQ = new LambdaQueryWrapper<>();
//        wechatUserPostWQ.eq(WechatUserPost::getUserId, userId);
//        List<WechatUserPost> wechatUserPosts = wechatUserPostMapper.selectList(wechatUserPostWQ);
//
//        if (CollectionUtil.isEmpty(wechatUserPosts)) {
//            return Collections.EMPTY_LIST;
//        }
//
//        LambdaQueryWrapper<WechatPost> wechatPostLambdaQW = new LambdaQueryWrapper<>();
//        wechatPostLambdaQW.in(WechatPost::getPostId, wechatUserPosts.stream().map(WechatUserPost::getPostId).collect(Collectors.toList()))
//                .orderByAsc(WechatPost::getPostSort);
//
//        return list(wechatPostLambdaQW);
//    }
//
//    /**
//     * 将岗位信息装载到缓存
//     */
//    private List<WechatPost> loadingPostCache() {
//        LambdaQueryWrapper<WechatPost> lambdaQueryWrapper = new LambdaQueryWrapper<>();
//        lambdaQueryWrapper.orderByAsc(WechatPost::getPostSort);
//        List<WechatPost> list = list();
//        if (CollectionUtil.isNotEmpty(list)) {
//            redisCache.setCacheList(WechatConstants.WECHAT_POST_CAPTCHA_CACHE_KEY, list);
//        }
//        return list;
//    }
//
//    /**
//     * 获取缓存中岗位信息
//     *
//     * @return
//     */
//    private List<WechatPost> getCachePosts() {
//        return redisCache.getCacheList(WechatConstants.WECHAT_POST_CAPTCHA_CACHE_KEY);
//    }

    /**
     * 删除岗位缓存
     */
    private void cleanPostCache() {
        redisCache.deleteObject(WechatConstants.WECHAT_POST_CAPTCHA_CACHE_KEY);
    }

}
